# 描述: 通用工具
# 作者: 王茂林
# 时间: 2023/10/19 10:02
import time
import datetime


def calc_center_point(pt1, pt2):
    """
    计算两点之间的中心点
    :param pt1: 点的XY坐标(p.x, p.y)
    :param pt2:
    :return: 中心点的XY坐标(p.x, p.y)
    """
    return int((pt1[0] - pt2[0]) // 2 + pt2[0]), int((pt1[1] - pt2[1]) // 2 + pt2[1])


def current_time_millis():
    """
    获取当前时间截（毫秒）
    :return:
    """
    return int(time.time() * 1000)


def get_iot_report_time():
    """
    获取上报IoT平台时的report_time
    :return:
    格式：yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    eg. 2023-11-06T08:39:52.670+0000
    """
    # 当前UTC时间
    curr_time = datetime.datetime.now(datetime.timezone.utc)
    # python的%f取的是微秒，所以取前三位做为毫秒上报
    return f'{curr_time.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]}{curr_time.strftime("%z")}'
